URL Routing এবং Status Codes হল ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের দুটি গুরুত্বপূর্ণ ধারণা। URL Routing ওয়েব অ্যাপ্লিকেশনের বিভিন্ন URL এর সাথে প্রাসঙ্গিক কাজ বা পৃষ্ঠা যুক্ত করার প্রক্রিয়া, এবং Status Codes HTTP প্রোটোকলে সার্ভারের প্রতিক্রিয়া চিহ্নিত করার জন্য ব্যবহৃত কোড।
১. URL Routing
URL Routing হলো একটি প্রক্রিয়া যা নির্দিষ্ট URL প্যাটার্নের জন্য নির্দিষ্ট ফাংশন বা হ্যান্ডলার অ্যাসাইন করে। এটি ওয়েব সার্ভার বা ওয়েব ফ্রেমওয়ার্কের মধ্যে কার্যকর হয় এবং ইউজারের রিকোয়েস্টের সাথে সম্পর্কিত ডাটা বা পৃষ্ঠার প্রক্রিয়া নির্দেশ করে।
Node.js এ URL Routing
Node.js এ URL routing সাধারণত Express ফ্রেমওয়ার্কে ব্যবহৃত হয়। Express ব্যবহার করে URL প্যাটার্নের সাথে সম্পর্কিত হ্যান্ডলার বা মেথড যুক্ত করা যায়।
Express এ Routing উদাহরণ:
- সাধারণ Routing:
```javascript
const express = require('express');
const app = express();
// রুট '/' এর জন্য একটি GET রিকোয়েস্ট হ্যান্ডলার
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// '/about' এর জন্য GET রিকোয়েস্ট হ্যান্ডলার
app.get('/about', (req, res) => {
res.send('About us');
});
// '/contact' এর জন্য GET রিকোয়েস্ট হ্যান্ডলার
app.get('/contact', (req, res) => {
res.send('Contact us');
});
// সার্ভার চালু করা
app.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
এখানে, `/`, `/about`, এবং `/contact` URL পাথে বিভিন্ন হ্যান্ডলার যুক্ত করা হয়েছে, যা ইউজারের রিকোয়েস্ট অনুযায়ী প্রতিক্রিয়া পাঠায়।
2. **ডাইনামিক Routing**:
Express এ URL এর মধ্যে প্যারামিটারও ব্যবহার করা যায়। যেমন, `/user/:id` প্যাটার্নের জন্য ডাইনামিক রাউটিং:
```javascript
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
res.send(`User ID is ${userId}`);
});এখানে, :id একটি প্যারামিটার এবং ইউজারের রিকোয়েস্ট অনুযায়ী প্যারামিটারটি পরিবর্তিত হবে।
- HTTP মেথড ব্যবহার:
আপনি বিভিন্ন HTTP মেথড (GET, POST, PUT, DELETE) অনুযায়ী রাউটিং করতে পারেন।
// POST রিকোয়েস্ট হ্যান্ডলার
app.post('/submit', (req, res) => {
res.send('Data submitted!');
});Express Middleware এর মাধ্যমে Routing:
Express এ middleware ব্যবহার করে, আপনি URL রাউটিংয়ে অতিরিক্ত প্রক্রিয়া যুক্ত করতে পারেন, যেমন অথেনটিকেশন বা লোগিং:
app.use((req, res, next) => {
console.log(`Request URL: ${req.url}`);
next(); // পরবর্তী মডিউলে যেতে বলে
});২. Status Codes (HTTP Status Codes)
HTTP Status Codes হল কোড যা ওয়েব সার্ভারের প্রতিক্রিয়া সম্পর্কে ক্লায়েন্টকে তথ্য দেয়। এগুলি রিকোয়েস্টের সফলতা, ত্রুটি বা অন্য কিছু অবস্থা বোঝাতে ব্যবহৃত হয়। প্রতিটি স্ট্যাটাস কোডের একটি নির্দিষ্ট অর্থ রয়েছে এবং এটি HTTP রেসপন্সের অংশ হিসেবে ক্লায়েন্টকে ফেরত পাঠানো হয়।
HTTP Status Code এর শ্রেণী:
- 1xx - Informational:
- এই স্ট্যাটাস কোডগুলি সাধারণত ইনফরমেশন প্রদান করে। ক্লায়েন্টের রিকোয়েস্ট গ্রহণ করা হয়েছে এবং কাজ চলছে।
- উদাহরণ:
100 Continue
- 2xx - Success:
- এই কোডগুলি সফল রিকোয়েস্ট নির্দেশ করে। এটি নির্দেশ করে যে, ক্লায়েন্টের রিকোয়েস্ট সফলভাবে সম্পন্ন হয়েছে এবং সার্ভার সঠিকভাবে প্রতিক্রিয়া দিয়েছে।
- উদাহরণ:
200 OK: রিকোয়েস্ট সফল হয়েছে এবং সার্ভার সঠিক ডাটা দিয়েছে।201 Created: নতুন রিসোর্স সফলভাবে তৈরি হয়েছে।204 No Content: রিকোয়েস্ট সফল, কিন্তু সার্ভার কোনো কনটেন্ট প্রদান করেনি (যেমন, একটি ডিলিট অপারেশন)।
- 3xx - Redirection:
- এই কোডগুলি নির্দেশ করে যে, ক্লায়েন্টকে অন্য URL এ রিডাইরেক্ট করা হয়েছে।
- উদাহরণ:
301 Moved Permanently: রিসোর্সটি স্থায়ীভাবে অন্য জায়গায় সরানো হয়েছে।302 Found: রিসোর্সটি সাময়িকভাবে অন্য জায়গায় সরানো হয়েছে।304 Not Modified: রিসোর্সটি পরিবর্তিত হয়নি এবং ক্লায়েন্ট কেচড কনটেন্ট ব্যবহার করতে পারে।
- 4xx - Client Errors:
- এই কোডগুলি নির্দেশ করে যে, ক্লায়েন্টের পক্ষ থেকে কোনো ত্রুটি ঘটেছে (যেমন ভুল রিকোয়েস্ট বা অনুমতি নেই)।
- উদাহরণ:
400 Bad Request: ক্লায়েন্টের রিকোয়েস্ট ভুল বা অসম্পূর্ণ।401 Unauthorized: ক্লায়েন্টে অথেনটিকেশন তথ্য নেই বা ভুল।404 Not Found: সার্ভারে রিকোয়েস্ট করা রিসোর্স পাওয়া যায়নি।403 Forbidden: ক্লায়েন্টের রিকোয়েস্টের অনুমতি নেই।
- 5xx - Server Errors:
- এই কোডগুলি নির্দেশ করে যে, সার্ভারের পক্ষ থেকে ত্রুটি ঘটেছে।
- উদাহরণ:
500 Internal Server Error: সার্ভারে অজানা ত্রুটি ঘটেছে।502 Bad Gateway: সার্ভার অন্য সার্ভার থেকে ভুল প্রতিক্রিয়া পেয়েছে।503 Service Unavailable: সার্ভিস বর্তমানে অপ্রাপ্য, সার্ভার অস্থায়ীভাবে ব্যস্ত।
Express এ Status Codes ব্যবহার
Express এ আপনি res.status() মেথড ব্যবহার করে HTTP স্ট্যাটাস কোড সেট করতে পারেন।
app.get('/', (req, res) => {
res.status(200).send('Request successful!');
});
app.get('/not-found', (req, res) => {
res.status(404).send('Page not found');
});
app.get('/unauthorized', (req, res) => {
res.status(401).send('Unauthorized access');
});এখানে, স্ট্যাটাস কোড 200, 404, এবং 401 সেট করা হয়েছে এবং তাদের সাথে উপযুক্ত বার্তা পাঠানো হয়েছে।
সারাংশ
- URL Routing হল একটি প্রক্রিয়া যা নির্দিষ্ট URL প্যাটার্নের জন্য নির্দিষ্ট ফাংশন বা কাজ অ্যাসাইন করে। Node.js এর Express ফ্রেমওয়ার্কে বিভিন্ন HTTP মেথড এবং প্যারামিটার ব্যবহার করে রাউটিং করা যায়।
- HTTP Status Codes ক্লায়েন্টকে সার্ভারের প্রতিক্রিয়া বোঝায়। এই কোডগুলি সফলতা, ত্রুটি বা অন্যান্য অবস্থা নির্দেশ করে এবং HTTP রেসপন্সের মাধ্যমে পাঠানো হয়।
- Express এ URL Routing এবং Status Codes ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশনের ইউজার ইন্টারঅ্যাকশন এবং সার্ভারের প্রতিক্রিয়া কার্যকরভাবে পরিচালনা করতে পারেন।
Read more